package com.xd.core.api.service;


import com.xd.core.api.dto.*;
import com.xd.core.api.entity.RepaymentOrderInfo;
import com.xd.core.api.vo.BalanceVo;
import com.xd.core.h5.dto.AdvancePaymentDto;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Map;

public interface DLApiService {

    void outAmount(OutAmountDto outAmountDto) throws Exception;

    void outAmountReturn(Map<String, Object> fpnre) throws IOException;

    String readySign(ReadySignDto readySignDto) throws Exception;

    void affirmBindCard(Integer creditId, String smsCode, String uniqueCode, String repayAccount, String repayName, String repayIdCard, String repayPhone,String repayBank) throws Exception;

    void confirmSign(ConfirmSignDto confirmSignDto) throws Exception;

    void singlePay(SinglePayDto singlePayDto, RepaymentOrderInfo repaymentOrderInfo) throws Exception;

    void singlePayReturn(HttpServletRequest request) throws Exception;

    String offlinePay(OfflinePayDto offlinePayDto) throws Exception;

    void offlinePayNotify(Map<String, Object> fpnre) throws IOException, InterruptedException;

    void offlineSplitNotify(Map<String, Object> fpnre) throws IOException;

    void ShareNotify(Map<String, String> sharerec) throws Exception;

    BalanceVo baofuBalance(String payPass) throws Exception;

    void ABolishBind(String uniqueCode);

    void towBaofuwithdrawDeposit(TowWithdrawDepositDto towWithdrawDepositDto) throws Exception;

    void towBaofuwithdrawDepositNotify(Map<String, Object> fpnre) throws IOException;

    void advancePayment(AdvancePaymentDto advancePaymentDto) throws Exception;

    void baodanSinglePayReturn(HttpServletRequest request) throws Exception;

    void baodanSharenotify(Map<String, String> sharerec) throws Exception;

    void HKtowBaofuwithdrawDeposit(TowWithdrawDepositDto towWithdrawDepositDto) throws Exception;

    Boolean whetherReadySign(ReadySignDto readySignDto);

    void h5SinglePay(AdvancePaymentDto advancePaymentDto) throws Exception;

    String bindBankCard(String repayPhone, String repayAccount, String repayName, String repayIdCard) throws Exception ;

    String VDownload(VDownloadDto vDownloadDto) throws Exception;

    void checkBalanceAndFreeze(Integer companyId);

}
